Estos días he estado trabajando con máquinas virtuales basadas en linux (desde un equipo con Windows) y he tenido que introducir cientos de miles de millones las mismas contraseñas, una y otra vez...
Al final, me decidí por configurar el acceso "sin password" (password-less), usando claves públicas generadas con SSH.
A continuación explico cómo generar las claves y cómo configurar PuTTY para conectar con equipos Linux -en este caso, una Raspberry Pi- sin necesidad de introducir el password cada vez.
Generar par de claves
En Windows, puedes generar una clave usando el programaputtygen.exe
, que como habrás deducido por el nombre, forma parte del conjunto de utilidades relacionadas con putty
, el cliente SSH para Windows.Puedes descargar PuTTY y PuTTYGen desde la página de descargas de su desarrollador: PuTTY Download Page.
Para generar las claves:
- Selecciona el tipo de algorito que va a usarse al generar las claves (por defecto, SSH-2 RSA)
- Estableces el número de bits de la clave generada (2048)
- Pulsa el botón Generate.

- Mueve el puntero del ratón en la zona bajo la barra de progreso para generar aleatoriedad
- Una vez generada la clave, establece un comentario que permita identificar la clave.
- Pulsa el botón Save public key y selecciona dónde quieres guardar el fichero con la clave pública
- Pulsa sobre el botón Save private key y selecciona dónde quieres guardar el fichero con la clave privada
- La clave privada será tu contraseña, de manera que deberías guardarla en un lugar seguro y protegida con una contraseña (o passphrase).
Copiar clave pública al servidor remoto
Una vez hemos generado el par de claves, debemos copiar la clave pública al servidor remoto, dentro del fichero~/.ssh/authorized_keys
.- Abre una sesión contra el equipo remoto usanto PuTTY
- Abre el fichero
~/.ssh/authorized_keys
mediantenano ~/.ssh/authorized_keys
(si no existe, se abrirá un fichero en blanco) - Copia la clave pública desde PuTTYGen y pégala en
nano
:
- Comprobamos si existe la carpeta
.ssh
en la carpeta home del usuario mediantels -la ~
- Si no existe, la creamos.
- Abrimos el fichero de texto
authorized_keys
- Pegamos el contenido desde el portapapeles pulsando el botón secundario del mouse.
- Guardamos el fichero mediante Ctrl+O
Observa que se indica que se guarda 1 línea
- Salimos de
nano
mediante Ctrl+X. - Finalmente, comprobamos que el fichero
authorized_keys
contiene la clave pública copiada (mediante el comandocat authorized_keys
). - Cerramos la sesión remota (con
exit
).
- Comprobamos si existe la carpeta
Configurar PuTTY
Ya hemos generado el par de claves -pública y privada-, hemos indicado al servidor remoto que la clave pública que hemos generado es una clave autorizada.El siguiente paso es configurar PuTTY para que use la clave privada asociada a la clave pública que hemos configurado en el servidor remoto para poder conectarnos sin necesidad de introducir el password.
- Abre PuTTY
- Selecciona una de las sesiones guardadas y pulsa Load para recargar la configuración
- En el panel de la izquierda, navega hasta Connection -> SHH -> Auth.
- Pulsa el botón Browse… junto al campo “Private key file for authentication:”
- Selecciona el fichero con la clave privada generada anteriormente. No pulses Open
- En el panel lateral, selecciona Session
- Pulsa Save para guardar las modificaciones a la sesión.
Carpeta .ssh
En los entornos Linux las claves se almacenan en la carpeta -oculta- .ssh
dentro de la carpeta personal del usuario. En Windows suele seguirse la misma costumbre, almacenando las claves en la carpeta c:\users\nombre-usuario\.ssh
.No es necesario guardar las claves generadas en esta carpeta.El Explorador de Windows no permite crear una carpeta cuyo nombre empiece por un punto
.
, así que tendrás que crear la carpeta desde la línea de comando, usando mkdir .ssh
:
Comentarios